﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NUnit.Framework;
using Spring.Context;
using Spring.Context.Support;
using AdminCondominio.Negocio;
using AdminCondominio.Dominio;

namespace AdminCondominio.Pruebas
{

    [TestFixture]
    public class TestSeparacionAreaComunService
    {
        private IApplicationContext Spring;
        SeparacionAreaComunService separacionareacomunService;
        [TestFixtureSetUp]
        public void InicializaPruebas()
        {

            Spring = new XmlApplicationContext(
                "assembly://AdminCondominio/AdminCondominio/capaNegocio.xml",
                "assembly://AdminCondominio/AdminCondominio/capaPersistencia.xml"
              );
            separacionareacomunService = (SeparacionAreaComunService)Spring.GetObject("separacionareacomunService");
            Assert.NotNull(separacionareacomunService);
        }

        [Test]
        public void TestRegistrarSeparacionAreaComun()
        {
            

            SeparacionAreaComun _separacion = new SeparacionAreaComun();
            _separacion.AreaComun = new AreaComun();
            _separacion.Residente = new Residente();
            _separacion.AreaComun.CoAreaComun = 1;
            _separacion.Residente.CoResidente = 1;
            _separacion.FeSeparacion = new DateTime(2011, 07, 25);
            _separacion.NuPersonas = 2;
            _separacion.NoResponsable = "fiorela";
            _separacion.TxComentario = "probando";
            _separacion.Estado = "1";


            Assert.DoesNotThrow(delegate
            {
                separacionareacomunService.RegistrarSeparacionAreaComun(_separacion);

            });


        }
        [Test]
        public void TestIntentarRegistrarSeparacionAreaComunConAreacomunYFechaRepetidos()
        {
           

            SeparacionAreaComun _separacion = new SeparacionAreaComun();
            _separacion.AreaComun = new AreaComun();
            _separacion.Residente = new Residente();
            _separacion.AreaComun.CoAreaComun = 1;
            _separacion.Residente.CoResidente = 1;
            _separacion.FeSeparacion = new DateTime(2011, 07, 25);
            _separacion.NuPersonas = 2;
            _separacion.NoResponsable = "fiorela";
            _separacion.TxComentario = "probando";
            _separacion.Estado = "1";


            Assert.Catch<Exception>(delegate
            {
                separacionareacomunService.RegistrarSeparacionAreaComun(_separacion);

            });


        }
        [Test]
        public void TestIntentarRegistrarSeparacionAreaComunConResidenteYFechaRepetidos()
        {


            SeparacionAreaComun _separacion = new SeparacionAreaComun();
            _separacion.AreaComun = new AreaComun();
            _separacion.Residente = new Residente();
            _separacion.AreaComun.CoAreaComun = 1;
            _separacion.Residente.CoResidente = 1;
            _separacion.FeSeparacion = new DateTime(2011, 07, 25);
            _separacion.NuPersonas = 2;
            _separacion.NoResponsable = "fiorela";
            _separacion.TxComentario = "probando";
            _separacion.Estado = "1";


            Assert.Catch<Exception>(delegate
            {
                separacionareacomunService.RegistrarSeparacionAreaComun(_separacion);

            });


        }
        [Test]
        public void TestListarSeparacionAreaComun()
        {
           
            String fechaSeparacion = null;
            ICollection<SeparacionAreaComun> separacionAreaComun = null;
            Assert.DoesNotThrow(delegate
            {
                separacionAreaComun= separacionareacomunService.ListarReservas(fechaSeparacion);
            });
            Assert.NotNull(separacionAreaComun);

        }

        [Test]
        public void TestObtenerSeparacionAreaComun()
        {

           
            SeparacionAreaComun sep = separacionareacomunService.ObtenerSeparacionAreaComun(5);
            Assert.NotNull(sep);

        }
    }
}